var editUserWin;

/**
 * 编辑用户信息
 * 
 * @param {}
 *            id 用户ID
 * @param {}
 *            name 用户姓名
 */
function editUser(id, name) {
	if (!editUserWin) {
		editUserWin = null;
	}

	var userBaseForm = initEditUserForm(id, name);

	editUserWin = new Ext.Window({
				renderTo : Ext.getBody(),
				layout : 'fit',
				width : 600,
				height : 450,
				title : '用户信息编辑',
				plain : true,
				modal : true,

				items : [userBaseForm],

				buttons : [{
							text : '提 交',
							handler : handleUpdateUser
						}, {
							text : '关 闭',
							handler : function() {
								editUserWin.close();
								editUserWin = null;
							}
						}]
			});

	editUserWin.show(this);
}

function initEditUserForm(id, name) {
	var editUserForm = new Ext.FormPanel({
		id : 'editUserForm',
		labelWidth : 75,
		border : false,
		width : 350,

		items : {
			xtype : 'tabpanel',
			activeTab : 0,
			border : false,
			defaults : {
				autoHeight : true,
				bodyStyle : 'padding:10px'
			},
			items : [{
				title : '基本信息',
				layout : 'form',
				defaults : {
					width : 230
				},
				defaultType : 'textfield',

				items : [{
							xtype : 'hidden',
							name : 'uid',
							value : id
						}, {
							fieldLabel : '姓名',
							name : 'uname',
							// regex : /[\u4e00-\u9fa5]/,
							// regexText : "只能输入中文!",
							emptyText : '请输入用户名',
							allowBlank : false
						}, {
							fieldLabel : '登录ID',
							vtype : 'alphanum',
							allowBlank : false,
							emptyText : '请输入登录ID',
							name : 'logid'
						}, new Ext.form.RadioGroup({
							fieldLabel : "性别",
							// hideLabel : true, // 隐藏RadioGroup标签
							items : [new Ext.form.Radio({ // 以上相同
										id : "branch1",
										boxLabel : "男",
										name : "sex",
										inputValue : "男",
										listeners : {
											check : function(checkbox, checked) {
												if (checked) {

												}
											}
										}
									}), new Ext.form.Radio({ // 三个必须项
										id : "branch0",
										// checked : true, //
										// 设置当前为选中状态,仅且一个为选中.
										boxLabel : "女", // Radio标签
										name : "sex", // 用于form提交时传送的参数名
										inputValue : "女", // 提交时传送的参数值
										listeners : {
											check : function(checkbox, checked) { // 选中时,调用的事件
												if (checked) {

												}
											}
										}
									})]
						}), new Ext.form.DateField({
									id : 'birthday',
									name : 'birthday',
									format : 'Y-m-d',
									fieldLabel : '生日'
								}), {
							fieldLabel : '电话',
							name : 'uphone'
						}, {
							fieldLabel : '邮箱',
							vtype : "email",
							vtypeText : "请输入正确的邮箱地址",
							name : 'uemail'
						}, new Ext.form.RadioGroup({
							fieldLabel : "有效性",
							// //RadioGroup.fieldLabel 标签与
							// Radio.boxLabel 标签区别
							// width : "200",
							// hideLabel : true, // 隐藏RadioGroup标签
							items : [new Ext.form.Radio({ // 三个必须项
										id : "flag0",
										// checked : true, //
										// 设置当前为选中状态,仅且一个为选中.
										boxLabel : "有效", // Radio标签
										name : "flag", // 用于form提交时传送的参数名
										inputValue : "0", // 提交时传送的参数值
										listeners : {
											check : function(checkbox, checked) { // 选中时,调用的事件
												if (checked) {

												}
											}
										}
									}), new Ext.form.Radio({ // 以上相同
										id : "flag1",
										boxLabel : "无效",
										name : "flag",
										inputValue : "-1",
										listeners : {
											check : function(checkbox, checked) {
												if (checked) {

												}
											}
										}
									})]
						})]
			}, {
				title : '详细信息',
				layout : 'form',
				defaults : {
					width : 230
				},
				defaultType : 'textfield',

				items : [
						{
							fieldLabel : '用户编码',
							name : 'unumber'
						},
						getGroupSelectCombo('所在组/部门', 'gid', 'gname', ''),
						{
							xtype : 'hidden',
							id : 'gid',
							name : 'gid'
						},
						getWBComboStore('user-rating', '', 'grating_', '级别',
								'rating', null, '0'),
						{
							xtype : 'hidden',
							name : 'rating',
							id : 'rating'
						},
						getWBComboStore('job', '', 'job_', '职务', 'job', null,
								''), {
							xtype : 'hidden',
							name : 'job',
							id : 'job'
						}, {
							fieldLabel : '排序',
							regex : /^[1-9]\d*$/,
							regexText : "只能正整数字!",
							name : 'disporder',
							id : 'disporder',
							value : '99'
						}]
			}]
		}
	});

	editUserForm.getForm().load({
				url : context + '/system/user.do?method=edit',
				params : {
					id : id
				},
				waitTitle : '提示',
				waitMsg : '正在加载数据,请稍候...',
				animEl : "loding",
				success : function(form, action) {
					var resultInfo = listSimpleJson(action.result.data);

					/* 性别 */
					var gbranch = resultInfo.get("sex");

					if (gbranch == "女") {
						Ext.get("branch0").dom.checked = true;
					} else if (gbranch == "男") {
						Ext.get("branch1").dom.checked = true;
					}

					/* 有效性 */
					var flag = resultInfo.get("flag");

					if (flag == "0") {
						Ext.get("flag0").dom.checked = true;
					} else if (flag == "-1") {
						Ext.get("flag1").dom.checked = true;
					}
					// Ext.getCmp('garea_').setValue(resultInfo.get("garea"));
					// Ext.getCmp('grating_').setValue(resultInfo.get("grating"));
				},
				failure : function(form, action) {
					Ext.Msg.alert('读取用户信息失败');
				}
			});

	return editUserForm;
}

function handleUpdateUser() {
	if (Ext.getCmp("editUserForm").getForm().isValid()) {
		Ext.MessageBox.wait('提交保存过程中...');

		Ext.getCmp("editUserForm").getForm().submit({
					url : context + '/system/user.do?method=update',
					method : "POST",
					params : countUpdateUserGroupItem(),
					success : function(form, action) {
						Ext.MessageBox.hide();
						Ext.MessageBox.alert('提示', '已成功更新用户信息');
						reloadUserListStore();
					},
					failure : function(form, action) {
						Ext.MessageBox.hide();
						if (action.result.errCode == '-1') {
							Ext.Msg.alert('提示', '提交保存用户信息发生错误！');
						} else if (action.result.errCode == '0') {
							Ext.Msg.alert('提示', '登录ID必须设置！');
						} else if (action.result.errCode == '1') {
							Ext.Msg.alert('提示', '登录ID重复，请重新定义！');
						} else {
							Ext.Msg.alert('提示', '未知的错误异常！');
						}
					}
				});
	} else {
		Ext.Msg.alert('提示', '基本信息和详细信息都存在必须输入的内容，请仔细输入！');
	}
}

/**
 * 计算
 * 
 * @return {}
 */
function countUpdateUserGroupItem() {
	var paramsJson = {
		gid_0 : Ext.getCmp("gid").getValue(),
		uid_0 : Ext.getCmp("editUserForm").getForm().findField("uid")
				.getValue(),
		upt_0 : '',
		upj_0 : Ext.getCmp("job").getValue(),
		upr_0 : Ext.getCmp("rating").getValue(),
		upo_0 : Ext.getCmp("disporder").getValue(),
		countP : parseCounterName(1)
	}

	return paramsJson;
}